var idCriteriaLevel2 = db.getCollection('CriteriaLevel2').findOne({Name:"Material E&S Issues",ShortName:"RiskRatings"})._id;

var selnoidio= db.getCollection('CriteriaLevel3').find({$and:[{CriteriaLevel2Id:idCriteriaLevel2}, 
			   {Category:{$not: /Idiosyncratic/}}]}).sort({Category:1 , Order:1})

var idx=0;

function processNoIdio(selnoidio, index) {
	
        var sel = db.getCollection('CriteriaLevel3').findOne({_id:selnoidio._id});

        db.getCollection('CriteriaLevel3').update(
        {_id: selnoidio._id}, {$set:{Order:NumberInt(index)}},{multi:false});
}

selnoidio.forEach(function (selnoidio) {
        idx = idx+1;
        processNoIdio(selnoidio, idx);
    });
					
var selidio =  db.getCollection('CriteriaLevel3').find({$and:[{CriteriaLevel2Id:idCriteriaLevel2}, 
			   {Category:/Idiosyncratic/}]}).sort({Category:1 , Order:1});
	
function processIdio(selidio, index) {
	
        var sel = db.getCollection('CriteriaLevel3').findOne({_id:selidio._id});

        db.getCollection('CriteriaLevel3').update(
        {_id: selidio._id}, {$set:{Order:NumberInt(index)}},{multi:false});
}

selidio.forEach(function (selidio) {
        idx = idx+1;
        processIdio(selidio, idx);
    });